package cn.itcast.wanxinp2p.account.service;


import cn.itcast.wanxinp2p.common.domain.RestResponse;
import cn.itcast.wanxinp2p.dto.account.AccountDTO;
import cn.itcast.wanxinp2p.dto.account.AccountLoginDTO;
import cn.itcast.wanxinp2p.dto.account.AccountRegisterDTO;

/**
 * @author 六一居士
 */
public interface AccountService {
    /**
     * 获取手机验证码
     * @param mobile 手机号
     * @return 校验标识
     */
    RestResponse getSMSCode(String mobile);


    /**
     * 校验手机号和验证码
     * @param mobile 手机号
     * @param key 校验标识
     * @param code 验证码
     * @return 1(成功) / 0(失败)
     */
    Integer checkMobile(String mobile, String key, String code);

    /**
     * 统一账号服务实现保存功能
     * @param accountRegisterDTO 客户端用户传输的基础数据
     * @return 返回用户数据
     */
    AccountDTO register(AccountRegisterDTO accountRegisterDTO);
    void confirmMethod(AccountRegisterDTO accountRegisterDTO);
    void cancelMethod(AccountRegisterDTO accountRegisterDTO);


    /**
     登录功能
     @param accountLoginDTO 封装登录请求数据
     @return 用户及权限信息
     */
    AccountDTO login(AccountLoginDTO accountLoginDTO);
}
